1. Technical Field
The present invention relates to the field of Peer-to-Peer computer networks, and more particularly, to streaming data files in such networks.
2. Discussion of Related Art
File sharing is becoming ever more common, and as the computer networks grow larger, so does the need to stream data in an efficient way that utilizes the maximal capabilities of the sharing agents. Maintaining quality of service in a Peer-to-Peer network poses a challenge that derives, among other things, from the distributed nature of the network, as well as the uncertainty of the availability of the sharing agents over time.
A widely used Peer-to-Peer protocol is the BitTorrent protocol. This protocol allows users to distribute large amounts of data without the heavy demands on their computers that would be needed for standard Internet hosting. A standard host's servers can easily be brought to a halt if high levels of simultaneous data flow are reached.
In operation, a user playing the role of file-provider makes a file available to the network. This first user's file is called a seed and its availability on the network allows other users, called peers, to connect and begin to download the seed file. As new peers connect to the network and request the same file, their computer receives a different piece of the data from the seed. Once multiple peers have multiple pieces of the seed, BitTorrent allows each to become a source for that portion of the file. The effect of this is to take on a small part of the task and relieve the initial user, distributing the file download task among the seed and many peers. With BitTorrent, no one computer needs to supply data in quantities which could jeopardize the task by overwhelming all resources, yet the same final result (each peer eventually receiving the entire file) is still reached.
After the file is successfully and completely downloaded by a given peer, the peer is able to shift roles and become an additional seed, helping the remaining peers to receive the entire file. This eventual shift from peers to seeders determines the overall ‘health’ of the file (as determined by the number of times a file is available in its complete form).